Customer Relationship Management (CRM) solutions provide tools and capabilities needed to create and maintain a clear picture of customers, from first contact through purchase and post-sales. For complex organizations, a CRM system may provide features and capabilities to help improve the way sales and marketing organizations target new customers, manage marketing campaigns, and drive sales activities. CRM systems may include many components, hardware and software, utilized individually or in a shared manner by users internal or external to the organization.
Thus, a typical CRM system hosts multiple organizations (“tenants”). Each tenant may be enabled to customize their CRM system by adding/deleting/modifying entities, attributes, relationships, forms, views, code-level extensibility plug-ins, and the like. In order to separate customizations implemented by different tenants, the customizations may be partitioned into separate tables that exist either in one database or in multiple databases. Despite the data partitioning, it may be desirable to share as much non-customized—but customizable—information as possible at runtime, to minimize memory requirements and improve performance.